using TodoApi.Models;

namespace TodoApi.Services
{
    public class TodoService : ITodoService
    {
        private readonly List<TodoItem> _todos = new List<TodoItem>
        {
            new TodoItem { Id = 1, Title = "学习ASP.NET Core", IsCompleted = false },
            new TodoItem { Id = 2, Title = "构建Web API", IsCompleted = false }
        };

        public IEnumerable<TodoItem> GetAll()
        {
            return _todos;
        }

        public TodoItem GetById(int id)
        {
            return _todos.FirstOrDefault(t => t.Id == id);
        }

        public void Add(TodoItem todoItem)
        {
            todoItem.Id = _todos.Any() ? _todos.Max(t => t.Id) + 1 : 1;
            _todos.Add(todoItem);
        }

        public void Update(TodoItem todoItem)
        {
            var index = _todos.FindIndex(t => t.Id == todoItem.Id);
            if (index != -1)
            {
                _todos[index] = todoItem;
            }
        }

        public void Delete(int id)
        {
            var todo = _todos.FirstOrDefault(t => t.Id == id);
            if (todo != null)
            {
                _todos.Remove(todo);
            }
        }
    }
}    